In a conventional network, there may be multiple paths to transport data packets between a client and a server of the network. The network may be configured to split the traffic among these multiple paths. In a network that deploys Weighted Cost MultiPath (WCMP) routing, the traffic may be distributed among available paths based on a set of pre-determined ratios routing. If the pre-determined ratios are equal, the routing is Equal Cost MultiPath (ECMP) routing, where the traffic is distributed evenly among the available paths.
Conventionally, the path taken by a particular Transmission Control Protocol (TCP) packet to travel from the client to the server is determined using a set of five different values, called as five-tuple, that make up a Transmission Control Protocol/Internet Protocol (TCP/IP) connection. The five-tuple may include source IP address (e.g. “src ip”), destination IP address (e.g. “dest ip”), the protocol in use (e.g. “13ptoto=tcp”), source port number (e.g. “src port”) and destination port number (e.g. “dest port”). For example the five-tuple can be expressed as <src ip, dest ip, 13ptoto=tcp, src port, dest port>.
In conventional networks, the packet flow of a given TCP connection is carried over a single determined path within the network even when multiple alternate paths exist. During periods of congestion on the determined path, alternate paths cannot be exploited. Thus, when the determined path is congested, the data traffic on the determined path is delayed.